package com.qqt.csr.im.vo.req;

import com.qqt.csr.common.idempotent.RequestKeyParam;
import com.qqt.csr.common.operalog.OperaLogSchema;
import com.qqt.csr.im.enums.EnableEnum;
import com.qqt.csr.im.enums.SensitiveWordRepoType;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * @Author: yang hao
 * @Date: 2025/1/14 15:39
 * @Description: 敏感词库修改请求
 **/
@Data
@Schema(description = "敏感词库修改请求")
public class SensitiveWordRepoUpdateReqVO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 敏感词库id
     */
    @Schema(description = "敏感词库id")
    @OperaLogSchema(desc = "敏感词库id")
    @NotNull(message = "敏感词库id不能为空")
    @RequestKeyParam
    private Long id;

    /**
     * 敏感词库简介
     */
    @Schema(description = "敏感词库简介")
    @Size(max = 300, message = "词库简介不能超过300个字符")
    private String desc;

    /**
     * 启用状态
     */
    @Schema(description = "启用状态")
    private EnableEnum enable;

    /**
     * 敏感词库类型
     */
    @Schema(description = "应用类型:VISITOR_SEND_MSG 访客发送消息检测;CS_SEND_MSG 客服发送消息检测")
    @NotNull(message = "敏感词库类型不能为空")
    @Size(min = 1,message = "应用类型不能为空")
    private List<SensitiveWordRepoType> types;

}
